/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cinfo.siga.gestionacademica.datos.impl;

import java.io.IOException;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.cinfo.siga.gestionacademica.datos.base.Sesion;
import org.cinfo.siga.gestionacademica.datos.base.SesionFactory;

/**
 *
 * @author lartkma
 */
public class SesionFactoryImpl extends SesionFactory{
    
    private static SesionFactory instancia = new SesionFactoryImpl();
    private SqlSessionFactory factoriaMyBatis;
    
    private SesionFactoryImpl(){
        String archivoConfig = "/org/cinfo/siga/gestionacademica/datos/impl/mybatis-config.xml";
        try{
            factoriaMyBatis = new SqlSessionFactoryBuilder().build(
                    Resources.getResourceAsStream(archivoConfig), "development-local");
        }catch(IOException e){
            throw new Error("No se puede abrir el archivo de configuracion", e);
        }
    }

    @Override
    public Sesion abrirSesion() {
        return new SesionImpl(factoriaMyBatis.openSession());
    }
    
    public static SesionFactory obtener() {
        return instancia;
    }
    
}
